"""
@-*- coding: utf-8 -*-
@ python：python 3.8
@ 创建人员：ylx
@ 创建时间：2025/4/10 上午10:03
@ 内容：
"""
import pytest

# 将数据同时写入多个文件流
# 目标将数据流同时写入控制台和日志文件


class Tee:
    """
    同时写入多个流的类
    """

    def __init__(self, *files):
        """

        :param files: 可以传入任意数量的文件对象，如文件流， sys.stdout
        """
        # self.files是一个元组，保存了所有传入的文件对象
        self.files = files

    def write(self, obj):
        """
        用于将数据写入所有注册的文件流
        :param obj: 要写入的内容，通常是字符串或其它支持写入的数据类型
        :return:
        """
        for f in self.files:
            f.write(obj)
            f.flush()

    def flush(self):
        """
        刷新所有文件对象的缓冲区
        确保所有文件对象中的数据都被立即写入底层存储设备中
        :return:
        """
        for f in self.files:
            f.flush()


# @pytest.fixture(autouse=True, scope="session")
# def redirect_output():
#     """重定向标准输出到控制台和日志文件"""
#     # 获取当前日期和时间戳
#     current_date = datetime.now().strftime("%Y-%m-%d")
#     timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
#     # 创建以日期命名的日志目录
#     log_dir = os.path.join("logs", "D:\\auto_armory", "logs", current_date)
#     os.makedirs(log_dir, exist_ok=True)
#
#     # 生成日志文件名
#     log_filename = os.path.join(log_dir, f"test_log_{timestamp}.log")
#
#     # 打开日志文件
#     log_file = open(log_filename, "w")
#
#     # 保存原始标准输出
#     original_stdout = sys.stdout
#
#     # 重定向标准输出到控制台和日志文件
#     sys.stdout = Tee(original_stdout, log_file)
#
#     yield  # 测试运行时保持重定向
#
#     # 测试结束后恢复原始输出并关闭日志文件
#     sys.stdout = original_stdout
#     log_file.close()


# 测试代码
def test_case_1():
    print("This is a print message from test_case_1.")
    assert True


def test_case_2():
    print("This is a print message from test_case_2.")
    assert True


if __name__ == "__main__":
    pytest.main()
